
/**
 * 普通队列
 */
class Queue{
    /**
     * 
     * @param {*} n 队列大小为n
     */
    constructor(n) {
        this.arr = new Array(n)
        this.head = 0;
        this.tail = 0; //尾指针指向最后一个元素的位置
    }
    
}
// 入队
Queue.prototype.enqueue = function(val){
    if(this.full())return;
    this.arr[this.tail] = val
    this.tail++; //尾指针向后移动一位 
}
// 出队
Queue.prototype.dequeue = function(val){
    if(this.empty())return;
    this.head += 1 //头指针向后移动一位
}
// 查看队首元素
Queue.prototype.front = function(val){
    if(this.empty())return;
    return this.arr[this.head]
}
// 队列满了
Queue.prototype.full = function(val){
    return this.tail === this.arr.length;
}
// 空队列
Queue.prototype.empty = function(val){
    return this.tail  === this.head
}
// 队列中元素个数
Queue.prototype.size = function(val){
    return this.tail - this.head
}
// 打印队列
Queue.prototype.output = function(val){
    return this.arr.slice(this.head,this.tail)
}



